﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MTO.Framework.DirectoryServices.AccountManagement.Interfaces;
using MTO.Framework.DirectoryServices.AccountManagement.Enums;

namespace MTO.Framework.DirectoryServices.AccountManagement
{
    public class UserAccount : IUserAccount
    {
        #region Fields

        private TypesUserAccounts typeUserAccount;

        private string country;

        private string departement;

        private string description;

        private string displayName;

        private string givenName;

        private string homeDirectory;

        private string mail;

        private string mailNickname;

        private string objectSid;

        private string physicalDeliveryOfficeName;

        private string samAccountName;

        private string surName;

        private string userPrincipalName;

        private string name;

        #endregion

        #region Properties

        #region IUserAccount Properties
        public string Country
        {
            get
            {
                return this.country;
            }

            set
            {
                this.country = value;
            }
        }

        public string Department
        {
            get
            {
                return this.departement;
            }

            set
            {
                this.departement = value;
            }
        }

        public string Description
        {
            get
            {
                return this.description;
            }
            set
            {
                this.description = value;
            }
        }

        public string DisplayName
        {
            get
            {
                return this.displayName;
            }
            set
            {
                this.displayName = value;
            }
        }

        public string GivenName
        {
            get
            {
                return this.givenName;
            }
            set
            {
                this.givenName = value;
            }
        }

        public string HomeDirectory
        {
            get
            {
                return this.homeDirectory;
            }
            set
            {
                this.homeDirectory = value;
            }
        }

        public string Mail
        {
            get
            {
                return this.mail;
            }
            set
            {
                this.mail = value;
            }
        }

        public string MailNickname
        {
            get
            {
                return this.mailNickname;
            }
            set
            {
                this.mailNickname = value;
            }
        }

        public string ObjectSid
        {
            get
            {
                return this.objectSid;
            }
            set
            {
                this.objectSid = value;
            }
        }

        public string PhysicalDeliveryOfficeName
        {
            get
            {
                return this.physicalDeliveryOfficeName;
            }
            set
            {
                this.physicalDeliveryOfficeName = value;
            }
        }

        public string SamAccountName
        {
            get
            {
                return this.samAccountName;
            }
            set
            {
                this.samAccountName = value;
            }
        }

        public string Surname
        {
            get
            {
                return this.surName;
            }
            set
            {
                this.surName = value;
            }
        }

        public string Name
        {
            get
            {
                return this.name;
            }
            set
            {
                this.name = value;
            }
        }

        public TypesUserAccounts TypeUserAccount
        {
            get
            {
                return this.typeUserAccount;
            }
            set
            {
                this.typeUserAccount = value;
            }
        }

        #endregion

        #endregion
    }
}
